package main

import "fmt"

/**
 * @author: guangcheng
 * @date:   2020/11/20 16:10
 * @version  V1.0
 * @description:
 *
 */
func main() {

	var a A
	var b B

	a = A(b) //两个结构体必须字段完全一致才可以转换
	fmt.Println(a, b)

	//Golang的类型非常严格, 有一点变动都认为是不同的类型
	var s1 Students
	var s2 Stu
	fmt.Println(s1, s2)
	//s2 = s1 //Cannot use 's1' (type Students) as type Stu
	s2 = Stu(s1) //强转前提就是字段完全一致

	var i integer = 10
	var j int = 20
	fmt.Println(i, j)
	//j=i //Cannot use 'i' (type integer) as type int
	j = int(i)
	fmt.Println(i, j)

}

type A struct {
	Num int
}
type B struct {
	Num int
}

type Students struct {
	Name string
	Age  int
}

//把一个结构体直接给另一个类型Stu, Golang认为他们(Stu, Students)是两个类型
type Stu Students

//integer虽然来自int, 但是Golang认为他们是两个类型
type integer int
